package com.cssy.xxkj.logic.service;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.transaction.annotation.Transactional;

import com.cssy.xxkj.logic.entity.InOutBillDO;
import com.cssy.xxkj.logic.entity.vo.LogicProductionDispatchingDetailItemVO;
import com.cssy.xxkj.logic.entity.vo.LogicSalesDetailVO;
import com.cssy.xxkj.logic.entity.vo.LogicWarehouseEndMonthSumVO;
import com.cssy.xxkj.logic.entity.vo.UtilsEntityVO;
import com.plat.exception.SyBaseException;

public interface IExcelExportService {
	/**
	 * 其他出库的导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<InOutBillDO> findOtherOutAndItemByConditions(HttpServletRequest request) throws SyBaseException; 
	/**
	 * 其他入库导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<InOutBillDO> findOtherInAndItemByConditions(HttpServletRequest request) throws SyBaseException; 
	/**
	 * 采购入库导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<InOutBillDO> findPurchasewareInAndItemByConditions(HttpServletRequest request) throws SyBaseException;
	/**
	 * 成品入库导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<InOutBillDO> findSotrageInAndItemByConditions(HttpServletRequest request) throws SyBaseException;
	/**
	 * 派工明细报表导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<LogicProductionDispatchingDetailItemVO> findDispatchingDetatlsReports(HttpServletRequest request) throws SyBaseException;
	/**
	 * 月末库存报表导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<LogicWarehouseEndMonthSumVO> findWarehouseEndMOthSumList(HttpServletRequest request) throws SyBaseException;
	/**
	 * 销售明细导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<LogicSalesDetailVO> finSalesDerailList(HttpServletRequest request) throws SyBaseException;
	 
	 /**
	  * 成品出库库导出
	  * @param request
	  * @return
	  * @throws SyBaseException
	  */
	public List<InOutBillDO> findstorageOutAndItemByConditions(HttpServletRequest request) throws SyBaseException;
	 /**
	  * 领料出库库导出
	  * @param request
	  * @return
	  * @throws SyBaseException
	  */
	public List<InOutBillDO> findMaterialOutAndItemByConditions(HttpServletRequest request) throws SyBaseException;
	/**
	 * 月末库存导出
	 */
	@Transactional
	public List<LogicWarehouseEndMonthSumVO> finEndMonthExcel(HttpServletRequest request) throws SyBaseException;
	/**
	 * 销售明细导出
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<LogicSalesDetailVO> findSalesDetailExcel(HttpServletRequest request) throws SyBaseException;
	/**
	 * 查询bom中所有的物料
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<UtilsEntityVO> findBOMMaterialAll(HttpServletRequest request) throws SyBaseException;
	
	/**
	 * 查询BOM中所有工序 
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<UtilsEntityVO> findBOMProcessListAll(HttpServletRequest request) throws SyBaseException;
	
	/**
	 * 分PI导入
	 * @param request
	 * @return
	 * @throws SyBaseException
	 */
	public List<InOutBillDO> findBatchInExce(HttpServletRequest request) throws SyBaseException;
	
	/**
	 * 月末库存导出(重写)
	 */
	@Transactional
	public List<LogicWarehouseEndMonthSumVO> findEndMonth(HttpServletRequest request) throws SyBaseException;
	
}
